// pages/goodDetails/goodDetails.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id:'',
    product:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
      this.setData({
        id:options.id
      })
      this.getDetail()
  },

  getDetail(){
  // 获取商品详情
  wx.request({
    url: `https://www.r8club.cn/api/products/detail/${this.data.id}`,
    method: 'GET',
    header: {
      'content-type': 'application/json',
    },
    success: (res) => {
      console.log('商品详情:',res.data.data.productInfo.price);
      if (res.data.code == 200) {
        const product = res.data.data.productInfo;
        console.log(product.price);

        this.setData({
          product:product
        })

      }
    },
    fail: (err) => {
      console.error('获取商品详情失败:', err);
    }
  })

  },


  // 立即购买
  buyNow() {
    const token = wx.getStorageSync('token');
    
    if (!token) {
      wx.showModal({
        title: '提示',
        content: '请先登录',
        showCancel: false,
        confirmText: '去登录',
        success: () => {
          wx.navigateTo({
            url: '/pages/login/login'
          });
        }
      });
      return;
    }

    if (!this.data.product || !this.data.product.price) {
      wx.showToast({
        title: '商品信息错误',
        icon: 'none'
      });
      return;
    }

    this.createOrderAndPay();
  },

  // 创建订单并支付
  createOrderAndPay() {
    wx.showLoading({
      title: '创建订单中...',
      mask: true
    });

    console.log('请求参数:', {
      productId: this.data.id,
      quantity: 1,
      totalAmount: this.data.product.price * 100,
      remark: '购买体验券'
    });

    const token = wx.getStorageSync('token');
    
    wx.request({
      url: 'https://www.r8club.cn/api/orders/create',
      method: 'POST',
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + token
      },
      data: {
        productId: this.data.id,
        quantity: 1,
        totalAmount: this.data.product.price * 100, // 转换为分
        remark: '购买体验券'
      },
      success: (res) => {
        wx.hideLoading();
        console.log('创建订单完整返回:', res);
        console.log('响应状态码:', res.statusCode);
        console.log('响应数据:', res.data);

        if (res.statusCode === 200 && res.data && res.data.success) {
          const { orderNo, paymentParams } = res.data.data;
          
          // 发起微信支付
          this.wxPay(paymentParams, orderNo);
        } else {
          // 显示详细错误信息
          const errorMsg = res.data?.message || res.data?.error || '创建订单失败';
          console.error('订单创建失败:', errorMsg);
          wx.showToast({
            title: errorMsg,
            icon: 'none',
            duration: 3000
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('创建订单网络失败:', err);
        wx.showToast({
          title: '网络请求失败，请重试',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 发起微信支付
  wxPay(paymentParams, orderNo) {
    wx.requestPayment({
      timeStamp: paymentParams.timeStamp,
      nonceStr: paymentParams.nonceStr,
      package: paymentParams.package,
      signType: paymentParams.signType,
      paySign: paymentParams.paySign,
      success: (res) => {
        console.log('支付成功:', res);
        wx.showToast({
          title: '支付成功',
          icon: 'success',
          duration: 2000,
          success: () => {
            // 支付成功后查询订单状态
            setTimeout(() => {
              this.checkOrderStatus(orderNo);
            }, 2000);
          }
        });
      },
      fail: (err) => {
        console.error('支付失败:', err);
        if (err.errMsg === 'requestPayment:fail cancel') {
          wx.showToast({
            title: '支付已取消',
            icon: 'none',
            duration: 2000
          });
        } else {
          wx.showToast({
            title: '支付失败，请重试',
            icon: 'none',
            duration: 2000
          });
        }
      }
    });
  },

  // 查询订单状态
  checkOrderStatus(orderNo) {
    const token = wx.getStorageSync('token');
    
    wx.request({
      url: `https://www.r8club.cn/api/orders/status/${orderNo}`,
      method: 'GET',
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + token
      },
      success: (res) => {
        console.log('订单状态:', res);
        
        if (res.statusCode === 200 && res.data && res.data.success) {
          const order = res.data.data;
          
          if (order.status === 'paid') {
            wx.showModal({
              title: '支付成功',
              content: '订单支付成功，感谢您的购买！',
              showCancel: false,
              confirmText: '确定',
              success: () => {
                // 可以跳转到订单列表或其他页面
                wx.navigateBack();
              }
            });
          } else if (order.status === 'pending') {
            wx.showToast({
              title: '订单待支付',
              icon: 'none'
            });
          } else if (order.status === 'cancelled') {
            wx.showToast({
              title: '订单已取消',
              icon: 'none'
            });
          }
        }
      },
      fail: (err) => {
        console.error('查询订单状态失败:', err);
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})